package mundomensajero.main;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import mundomensajero.data.FavoritesSQLiteHelper;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MundoMensajero_Activity extends Activity{

	ProgressDialog progDailog1,progDailog2,progDailog3,progDailog4;//tigo,claro,movistar,digicel
	public Button btnListDestinatarios,btnAgregarDest;
	public EditText txtPara,txtMensaje,txtDe;
	int maxCaracteres=180,maxDestinatarios=25;
	TextView lblCaracteres,lblNumDestinatarios;
	public ArrayList<DestinatarioData> destinatarios = new ArrayList<DestinatarioData>();
	
	ArrayList<String> noEnviados = new ArrayList<String>();
	String mensaje,de;
	int cantTigo,cantClaro,cantMovistar,cantDigicel;
	
	ArrayList<String> tigo = new ArrayList<String>();
	ArrayList<String> claro = new ArrayList<String>();
	ArrayList<String> movistar = new ArrayList<String>();
	ArrayList<String> digicel = new ArrayList<String>();
	
	static public boolean ejecutandoseTigo,ejecutandoseClaro,ejecutandoseMovistar,ejecutandoseDigicel=false;//variables que nos indicaran si los hilos terminaron
	
    final int TIGO=R.drawable.tigo_logo;
    final int CLARO=R.drawable.claro_logo;
    final int DIGICEL=R.drawable.digicel_logo;
    final int MOVISTAR=R.drawable.movistar_logo;
    
    //Variables del «Acerca de»
    TextView lblComentarios,lblHkadejo,lblFabricio;
    Button btnCerrarAcercaDe;
    CheckBox chkNoMostrar;
    ImageView imgDonar;
    
    SharedPreferences prefs;
	
	/**=================================================================================**/
	/**							INICIO DE LA APLICACIÓN									**/
	/**=================================================================================**/
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btnListDestinatarios = (Button)findViewById(R.id.btnListDestinatarios);
        btnAgregarDest = (Button)findViewById(R.id.btnAgregarDest);
        txtPara = (EditText)findViewById(R.id.txtPara);
        lblCaracteres = (TextView)findViewById(R.id.lblCaracteres);
        lblNumDestinatarios = (TextView)findViewById(R.id.lblNumDestinatarios);
        txtDe = (EditText)findViewById(R.id.txtDe);
        txtMensaje = (EditText)findViewById(R.id.txtMensaje);
        inicializar();
        txtMensaje.addTextChangedListener(new TextWatcher() { 
           public void afterTextChanged(Editable s) {} 
           public void beforeTextChanged(CharSequence s, int start, int count,int after) {} 
           public void onTextChanged(CharSequence s, int start, int before, int count) { 
                   lblCaracteres.setText(txtMensaje.getText().length()+"/"+maxCaracteres);
           } 
       }); 
       txtPara.addTextChangedListener(new TextWatcher() { 
            public void afterTextChanged(Editable s) {}
            public void beforeTextChanged(CharSequence s, int start, int count,int after) {} 
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                    if(txtPara.getText().length()!=0 && txtPara.getText().charAt(0)=='7') btnAgregarDest.setEnabled(true);
                    else btnAgregarDest.setEnabled(false);
            }
            
        });   
       txtPara.setOnKeyListener(new OnKeyListener() {
    		public boolean onKey(View v, int keyCode, KeyEvent event) {
    			if ((event.getAction() == KeyEvent.ACTION_DOWN)	&& (keyCode == KeyEvent.KEYCODE_DEL)) {
    				//Si se borra el numero de la caja de texto, lo borramos de el array destinatarios
    				int i=0;
    				/**Eliminamos cuando elimine el numero siempre y cuando destnatarios.size <2. 
    				 * Ej.: Mando un msj a un # y queda almacenado en destinatarios. Si borramos el numero (y hay solo 1 destinatario)
    				 * debemos borrar el primero para que no se le envie el msj y solo se le envie al nuevo que ingresamos
    				 * 
    				 */
    				if(txtPara.getText().length()<8) return false;
    				for(i=0; i<destinatarios.size();i++){
    					if(destinatarios.get(i).getNumero().toString().equals(txtPara.getText().toString())){
    						if(destinatarios.size()<2)destinatarios.remove(i);
    						break;
    					}
    				}
    				lblNumDestinatarios.setText("Destinatarios:"+destinatarios.size()+"/"+maxDestinatarios);
    				return false;
    			}
    			
				return false;
    		}
       });
       
       //Al lanzar la notificacion en la barra, se volvera a abrir el intent MundoMensajero.
       //Revisamos los datos que trae, y si no tiene nada mostramos que se enviaron todos los mensajes
       ArrayList<String> d = sacarData();
       if(d!=null && d.isEmpty()){
       	AlertDialog alertDialog = new AlertDialog.Builder(MundoMensajero_Activity.this).create();
           alertDialog.setTitle("Éxito al Enviar");
           alertDialog.setMessage("El envío se realizo con éxito");
           alertDialog.setIcon(R.drawable.exito_envio);
           alertDialog.setButton("Aceptar", new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int which) {
           		finish();
          	}
           });
           alertDialog.show();
           return;        	
       }
       
       mostrarMensajeInicial();
              
    }

    private void mostrarMensajeInicial() {
    	prefs = getSharedPreferences("PreferenciasMM",Context.MODE_PRIVATE);
		if(prefs.getString("MOSTRAR_MSJ_INICIAL", "V").equals("V")){
			showDialog(1);
		}
	}

	/**=================================================================================**/
	/**							FUNCIONES DE BOTONES									**/
	/**=================================================================================**/
    
    public void onClickMasDestinatarios(View button){
        if(txtPara.getText().length()!=8)
        	Toast.makeText(this, "El número debe tener 8 dígitos", Toast.LENGTH_SHORT).show();
        else if(txtPara.getText().length()==8)
        	if(txtPara.getText().charAt(0)!='7')
        		Toast.makeText(this, "El número debe comenzar con 7", Toast.LENGTH_SHORT).show();
        else{
        	//Si esta agregado pero el boton esta desabilitado es porque esta en el array destinatarios
        	//pero no se le dio al boton agregar(Ej.: ingreso el # presiono enviar msj, el # se agrego al array destinatarios. Si le damos al boton add dira que ya existe y no lo podemos agregar)
        	if(estaAgregado(txtPara.getText().toString()) && btnListDestinatarios.isEnabled()) 
        		Toast.makeText(this,txtPara.getText()+" ya está en la lista", Toast.LENGTH_LONG).show();
			else{
				if(destinatarios.size()==maxDestinatarios){
					Toast.makeText(this,"Ya no se pueden agregar más destinatarios", Toast.LENGTH_LONG).show();
					return;
				}
				if(!estaAgregado(txtPara.getText().toString())) destinatarios.add(new DestinatarioData("",txtPara.getText().toString() , true));
				btnListDestinatarios.setEnabled(true);
				lblNumDestinatarios.setText("Destinatarios:"+destinatarios.size()+"/"+maxDestinatarios);
				Toast.makeText(this, "Se agrego a "+txtPara.getText(), Toast.LENGTH_LONG).show();
				txtPara.setText("");
			}
        }
    }
    
    public void onClickEnviarMensaje(View button){
    	//Verificamos si existe conexión a internet. Sino mostramos un mensaje
    	if(!networkAvailable()){
    		AlertDialog alertDialog = new AlertDialog.Builder(MundoMensajero_Activity.this).create();
            alertDialog.setTitle("Sin Conexión");
            alertDialog.setMessage("No se puede hacer el envío sin conexión a internet");
            alertDialog.setIcon(R.drawable.warningtoast);
            alertDialog.setButton("Aceptar", new DialogInterface.OnClickListener() {
            	public void onClick(DialogInterface dialog, int which) {
           	}
            });
            alertDialog.show();
            return;
    	}
    	
    	String info;
    	noEnviados.clear();//Array que contiene destinatarios a los que no se les envio el msj
    	tigo.clear();//Array que contiene los destinatarios a tigo
    	movistar.clear();//Array que contiene los destinatarios a movistar
    	claro.clear();//Array que contiene los destinatarios claro
    	digicel.clear();//Array que contiene los destinatarios a digicel
    	
    	if(!validacion()) return; //Si todo esta bien, validacion devolvera TRUE
    	    	
    	mensaje = txtMensaje.getText().toString().trim();
    	de = txtDe.getText().toString().trim();
    	
    	if(txtPara.getText().length()==8 && txtPara.getText().charAt(0)=='7'){//Si hay un número en txtPara, lo agregamos a destinatarios
    		//Si el usuario envia varios msjs al mismo numero de la caja del txtPara, evitamos que se este agregando al array destinatarios
    		if(!estaAgregado(txtPara.getText().toString()))
    			destinatarios.add(new DestinatarioData("", txtPara.getText().toString(), true));
    	}
    	
    	//Personalizamos el mensaje que se mostrara al enviar el mensaje. Cambiamos el mensaje dependiendo si es 1 msj o si son varios
    	if(destinatarios.size()==1) info = "Enviando mensaje...";
    	else info = "Enviando mensajes...";
    	
    	//Recorremos todos los destinatarios y los metemos en el array correspondiente
    	for(int i=0; i<destinatarios.size(); i++){
    		switch (identificarCompania(destinatarios.get(i).getNumero())) {
    			case TIGO:
    				tigo.add(destinatarios.get(i).getNombre()+"-"+destinatarios.get(i).getNumero());
				break;
    			case CLARO:
    				claro.add(destinatarios.get(i).getNombre()+"-"+destinatarios.get(i).getNumero());
    			break;
    			case MOVISTAR:
    				movistar.add(destinatarios.get(i).getNombre()+"-"+destinatarios.get(i).getNumero());
    			break;
    			case DIGICEL:
    				digicel.add(destinatarios.get(i).getNombre()+"-"+destinatarios.get(i).getNumero());
    			break;
			}
    	}
    	cantTigo = tigo.size();
    	cantClaro = claro.size();
    	cantMovistar = movistar.size();
    	cantDigicel =  digicel.size();

    	//Creamos un hilo para cada una de las 4 compañias. Estos se ejecutaran paralelamente y mandaran los mensajes
    	
        /**									ENVIO A TIGO									  **/
    	/**===================================================================================**/
    	if(tigo.size()>0){
    		ejecutandoseTigo=true;//Bandera que indica que el hilo Tigo se esta ejecutando (esta enviando msjs)
    		progDailog1 = ProgressDialog.show(this, "",info, false);
			new Thread() {//TIGO

				public void run(){
					String id,consulta="";
					boolean fallo=false;
					int t;
					for(int m=0; m<tigo.size();m++){
						if(mensaje.length()<150){
							id = enviarMensaje(tigo.get(m).split("-")[1],mensaje);
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);
							}while(consulta.equals("PROCESANDO"));
							if(t>15 && !consulta.equals("PROCESANDO")){//Si t>15 es porque pasaron los 10seg y no se envio el msj
								noEnviados.add(tigo.get(m));
								fallo=true;
							}
						}
						else{//Si tiene mas de 150, partimos el mensaje de 0 a 100 y de 90 a 180
							id = enviarMensaje(tigo.get(m).split("-")[1],mensaje.substring(0, 100));
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);
							}while(consulta.equals("PROCESANDO"));
							if(t>15 && !consulta.equals("PROCESANDO")){//Si falla al envair el primero, no enviamos el segundo
								noEnviados.add(tigo.get(m));
								fallo=true;
								continue;
							}
							id = enviarMensaje(tigo.get(m).split("-")[1],mensaje.substring(85, mensaje.length()));
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);
							}while(consulta.equals("PROCESANDO"));
							
						}
					}
					if(!fallo) handler.sendEmptyMessage(TIGO);
					progDailog1.dismiss();
					ejecutandoseTigo=false;
				}
			}.start(); 
			
    	}
    	
    	/**									ENVIO A CLARO									  **/
    	/**===================================================================================**/
    	if(claro.size()>0){
    		ejecutandoseClaro = true;
    		progDailog2 = ProgressDialog.show(this, "",info, false);
    		new Thread() {//CLARO
				public void run(){
					String id,consulta="";
					boolean fallo=false;
					int t;
					for(int m=0; m<claro.size();m++){
						if(mensaje.length()<95){
							id = enviarMensaje(claro.get(m).split("-")[1],mensaje);
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);
							}while(consulta.equals("PROCESANDO"));
							if(t>15 && !consulta.equals("PROCESANDO")){//Si t>10 es porque pasaron los 10seg y no se envio el msj
								noEnviados.add(claro.get(m));
								fallo=true;
							}
						}
						else{//Si tiene mas de 94, partimos el mensaje de 0 a 94 y de 86 a 180
							id = enviarMensaje(claro.get(m).split("-")[1],mensaje.substring(0, 94));
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);
							}while(consulta.equals("PROCESANDO"));
							if(t>15 && !consulta.equals("PROCESANDO")){//Si falla al envair el primero, no enviamos el segundo
								noEnviados.add(claro.get(m));
								fallo=true;
								continue;
							}							
							id = enviarMensaje(claro.get(m).split("-")[1],mensaje.substring(86,mensaje.length()));
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);
							}while(consulta.equals("PROCESANDO"));
							
						}
					}
					if(!fallo)handler.sendEmptyMessage(CLARO);
					progDailog2.dismiss();
					ejecutandoseClaro=false;
				}
			}.start();
    	}
    	
    	/**									ENVIO A MOVISTAR									  **/
    	/**===================================================================================**/
    	if(movistar.size()>0){
    		ejecutandoseMovistar=true;
    		progDailog3 = ProgressDialog.show(this, "",info, false);
    		new Thread() {//MOVISTAR
				public void run(){
					String nombre,id,consulta="";
					boolean fallo=false;
					int t;
					for(int m=0; m<movistar.size();m++){
						if((mensaje.length()+txtDe.getText().toString().length())<120){
							id = enviarMensajeMovistar(movistar.get(m).split("-")[1],mensaje,txtDe.getText().toString());
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);//consultarENvio devolvera: PROCESANDO,ENVIADO,NO ENVIADO
							}while(consulta.equals("PROCESANDO"));
							if(t>15){//Si t>10 es porque pasaron los 10seg y no se envio el msj
								noEnviados.add(movistar.get(m));
								fallo=true;
							}
						}
						else{//Si tiene mas de 120, partimos el mensaje de 0 a 100 y de 90 a 180
							if(txtDe.getText().toString().length()>20) nombre = txtDe.getText().toString().substring(0, 20);
							else nombre = txtDe.getText().toString();
							id = enviarMensajeMovistar(movistar.get(m).split("-")[1],mensaje.substring(0, 100),nombre);
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);
							}while(consulta.equals("PROCESANDO"));
							if(t>15 && !consulta.equals("PROCESANDO")){//Si falla al envair el primero, no enviamos el segundo
								noEnviados.add(movistar.get(m));
								fallo=true;
								continue;
							}
							id = enviarMensajeMovistar(movistar.get(m).split("-")[1],mensaje.substring(90, mensaje.length()),nombre);
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);
							}while(consulta.equals("PROCESANDO"));
							
						}
					}
					if(!fallo) handler.sendEmptyMessage(MOVISTAR);
					progDailog3.dismiss();
					ejecutandoseMovistar = false;
				}
			}.start();
    	}
    	/**									ENVIO A DIGICEL									  **/
    	/**===================================================================================**/
    	if(digicel.size()>0){
    		ejecutandoseDigicel = true;
    		progDailog4 = ProgressDialog.show(this, "",info, false);
    		new Thread() {//DIGICEL
				public void run(){
					String id,consulta="";
					boolean fallo=false;
					int t;
					for(int m=0; m<digicel.size();m++){
						if(mensaje.length()<120){
							id = enviarMensaje(digicel.get(m).split("-")[1],mensaje);
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);
							}while(consulta.equals("PROCESANDO"));
							if(t>15 && !consulta.equals("PROCESANDO")){//Si t>10 es porque pasaron los 10seg y no se envio el msj
								noEnviados.add(digicel.get(m));
								fallo=true;
							}
						}
						else{//Si tiene mas de 94, partimos el mensaje de 0 a 94 y de 86 a 180
							id = enviarMensaje(digicel.get(m).split("-")[1],mensaje.substring(0, 100));
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);
							}while(consulta.equals("PROCESANDO"));
							if(t>15 && !consulta.equals("PROCESANDO")){//Si falla al envair el primero, no enviamos el segundo
								noEnviados.add(digicel.get(m));
								fallo=true;
								continue;
							}
							id = enviarMensaje(digicel.get(m).split("-")[1],mensaje.substring(90,mensaje.length()));
							t=0;
							do{
								if(t>15) break;//si ya pasaron mas de 10 segundos salimos
								try {
									t+=2;
									sleep(2000);
								} catch (InterruptedException e) {}
								consulta = consultarEnvio(id);
							}while(consulta.equals("PROCESANDO"));
						}
					}
					if(!fallo)handler.sendEmptyMessage(DIGICEL);
					progDailog4.dismiss();
					ejecutandoseDigicel=false;
				}
			}.start();
    	}    	
    	
    	new Hilo().start();//este hilo verificara si ya terminaron los otros hilos de envair los mensajes
    	
    	/**
    	 * @author fabrizzio
    	 * @date 8/Nov/2012
    	 * @comment Se llevara el registro de ultimos numeros usados
    	 */
    	guardarEnRecientes(destinatarios);
    	
    	/**
    	 * @author fabrizzio
    	 * @date 8/Nov/2012
    	 * @comment Se modifico para que no borre el numero ni el nombre de quien manda el msj
    	 * 			(se agrego opcion de menu de LIMPIAR CAMPOS)
    	 */
    	//txtDe.setText("");
		//txtPara.setText("");
    	//destinatarios.clear();
		txtMensaje.setText("");
		lblNumDestinatarios.setText("Destinatarios:"+destinatarios.size()+"/"+maxDestinatarios);
		if(destinatarios.size()==1 && txtPara.getText().length()!=0){
			btnListDestinatarios.setEnabled(false);
		}
		else if(destinatarios.size()>1 && txtPara.getText().length()!=0){
			txtPara.setText("");
			btnListDestinatarios.setEnabled(true);
		}
    	
    }
    
	public class Hilo extends Thread{
    	public void run(){
    		while(ejecutandoseTigo || ejecutandoseClaro || ejecutandoseDigicel || ejecutandoseMovistar){
    			try {Thread.sleep(500);}
    			catch (InterruptedException e) {}
    		}
    		if(!noEnviados.isEmpty()) lanzarNotificacion(false);//fallo
    		else lanzarNotificacion(true);//exito
    	}
    }
        
    
	private Handler handler = new Handler() {
    	@Override
    	public void handleMessage(Message msg) {
    		switch(msg.what){
    		case TIGO: if(cantTigo>1) msj(R.drawable.notitigo_logo, "Se enviaron los mensajes a TIGO");
    					else msj(R.drawable.notitigo_logo, "Se envió el mensaje a TIGO");
    		break;
    		case CLARO:if(cantClaro>1) msj(R.drawable.noticlaro_logo, "Se enviaron los mensajes a CLARO");
						else msj(R.drawable.noticlaro_logo, "Se envió el mensaje a CLARO");
    		break;
    		case MOVISTAR: if(cantMovistar>1) msj(R.drawable.notimovistar_logo, "Se enviaron los mensajes a MOVISTAR");
							else msj(R.drawable.notimovistar_logo, "Se envió el mensaje a MOVISTAR");
    		break;
    		case DIGICEL: 	if(cantDigicel>1) msj(R.drawable.notidigicel_logo, "Se enviaron los mensajes a DIGICEL");
							else msj(R.drawable.notidigicel_logo, "Se envió el mensaje a DIGICEL");
    		break;
    		}
    	}
    };
    
    
    public void onClickVerRecientes(View button){    	
    	Intent listaRecientes = new Intent();
    	listaRecientes.setClass(this, RecientesView.class);
    	startActivityForResult(listaRecientes, 4);
    }
    
    public void onClickVerDestinatarios(View button){    	
    	Intent listaDest = new Intent();
    	listaDest.setClass(this, DestinatariosView.class);
    	listaDest.putExtras(empaquetarData());
    	startActivityForResult(listaDest, 2);
    }
    
    public void onClickContactos(View Button){
    	Intent contactos = new Intent();
    	contactos.setClass(this, ContactView.class);
    	startActivityForResult(contactos, 1);
    }
    
    /**=================================================================================**/
    /**								FUNCIONES DE MENUS									**/
    /**=================================================================================**/
    
   
    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main_menu, menu);
        return true;
    }
    
    @Override    
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.acercade:
            	showDialog(0);
            	return true;
            case R.id.contactos:
            	//Toast.makeText(this, "Contactos", Toast.LENGTH_LONG).show();
            	onClickContactos(null);
            	return true;
            case R.id.compartir:
            	//Toast.makeText(this, "Compartir", Toast.LENGTH_LONG).show();
            	Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
       		 	shareIntent.setType("text/plain");
       		 	shareIntent.putExtra(android.content.Intent.EXTRA_TEXT,"Envía mensajes gratis desde tu Android con «Mundo Mensajero SV». Descarga la aplicación: http://goo.gl/j69WU");
       		 	startActivity(Intent.createChooser(shareIntent, "Compartir usando"));
            	return true;
            case R.id.donacion:
            	Intent in=new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QU8L27QUQF4BC"));
           		startActivity(in);
            	return true;
            case R.id.favoritos:
            	//Toast.makeText(this, "Donacion", Toast.LENGTH_LONG).show();
            	Intent favorites = new Intent();
            	favorites.setClass(this, FavoritesView.class);
            	startActivityForResult(favorites, 3);
            	return true;
            case R.id.limpiarCampos:
            	//Toast.makeText(this, "Donacion", Toast.LENGTH_LONG).show();
            	txtDe.setText("");
        		txtPara.setText("");
        		txtMensaje.setText("");
        		destinatarios.clear();
        		lblNumDestinatarios.setText("Destinatarios:"+destinatarios.size()+"/"+maxDestinatarios);
        		btnListDestinatarios.setEnabled(false);
            	return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
    
    /**=================================================================================**/
	/**								FUNCION DE RESULT									**/
	/**=================================================================================**/
    
    
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if(requestCode == 1){//ContactosView
			if (resultCode == RESULT_OK){
				if(estaAgregado(data.getStringExtra("number"))) Toast.makeText(this,data.getStringExtra("contact")+" ya está en la lista", Toast.LENGTH_LONG).show();
				else if(destinatarios.size()==maxDestinatarios) Toast.makeText(this,"Ya no se pueden agregar más destinatarios", Toast.LENGTH_LONG).show();
				else{
					Toast.makeText(this, "Se agrego a "+data.getStringExtra("contact"), Toast.LENGTH_LONG).show();
					destinatarios.add(new DestinatarioData(sacarNombre(data.getStringExtra("contact")),data.getStringExtra("number") , true));
					btnListDestinatarios.setEnabled(true);
					lblNumDestinatarios.setText("Destinatarios:"+destinatarios.size()+"/"+maxDestinatarios);
				}	    		
				
			}else if(resultCode == RESULT_CANCELED){
				//Toast.makeText(this, "CANCEL", Toast.LENGTH_LONG).show();
			}
		}
		else if(requestCode == 2){//Destinatariosview
			if (resultCode == RESULT_OK){
				int x=0,checkeados[] = data.getIntArrayExtra("checkeados");
				for(int i=0; i<checkeados.length; i++){
					if(checkeados[i]==-1) break;
					if(checkeados[i]==0){
						destinatarios.remove(x);
						//i=i-1;
						//destinatarios.set(i, new DestinatarioData(destinatarios.get(i).getNombre(), destinatarios.get(i).getNumero(), false));
					}
					else x++;
				}
				if(destinatarios.size()==0) btnListDestinatarios.setEnabled(false);
				lblNumDestinatarios.setText("Destinatarios:"+destinatarios.size()+"/"+maxDestinatarios);
			}else if(resultCode == RESULT_CANCELED){
				//Toast.makeText(this, "CANCEL", Toast.LENGTH_LONG).show();
			}
		}
		else if(requestCode == 3){//FavoritosView
			if (resultCode == RESULT_OK){
				if(estaAgregado(data.getStringExtra("number"))) Toast.makeText(this,data.getStringExtra("contact")+" ya está en la lista",Toast.LENGTH_SHORT).show();
				else if(destinatarios.size()==maxDestinatarios) Toast.makeText(this,"Ya no se pueden agregar más destinatarios",Toast.LENGTH_SHORT).show();
				else{
					Toast.makeText(this, "Se agrego a "+data.getStringExtra("contact"), Toast.LENGTH_SHORT);
					destinatarios.add(new DestinatarioData(data.getStringExtra("contact"),data.getStringExtra("number") , true));
					btnListDestinatarios.setEnabled(true);
					lblNumDestinatarios.setText("Destinatarios:"+destinatarios.size()+"/"+maxDestinatarios);
				}
			}else if(resultCode == RESULT_CANCELED){
				//Toast.makeText(this, "CANCEL", Toast.LENGTH_LONG).show();
			}
		}
		else if(requestCode == 4){//RerecientesView
			if (resultCode == RESULT_OK){
				if(estaAgregado(data.getStringExtra("numero"))) Toast.makeText(this,data.getStringExtra("numero")+" ya está en la lista",Toast.LENGTH_SHORT).show();
				else if(destinatarios.size()==maxDestinatarios) Toast.makeText(this,"Ya no se pueden agregar más destinatarios",Toast.LENGTH_SHORT).show();
				else{
					if(data.getStringExtra("nombre").toString().equals(""))
						Toast.makeText(this, "Se agrego a "+data.getStringExtra("numero"), Toast.LENGTH_SHORT).show();
					else
						Toast.makeText(this, "Se agrego a "+data.getStringExtra("nombre"), Toast.LENGTH_SHORT).show();
					destinatarios.add(new DestinatarioData(data.getStringExtra("nombre"),data.getStringExtra("numero") , true));
					btnListDestinatarios.setEnabled(true);
					lblNumDestinatarios.setText("Destinatarios:"+destinatarios.size()+"/"+maxDestinatarios);
				}
			}
		}
		else{
			if (resultCode == RESULT_OK){
				msj(android.R.drawable.alert_dark_frame, "Enviar de nuevo");
			}
			else{
				
			}
		}
	}
    
    /**=================================================================================**/
   	/**								FUNCIONES VARIAS									**/
   	/**=================================================================================**/
    
    private void guardarEnRecientes(ArrayList<DestinatarioData> dest) {
    	FavoritesSQLiteHelper usdbh = new FavoritesSQLiteHelper(this, "DBFavorites_MM", null, 1);
    	SQLiteDatabase db = usdbh.getWritableDatabase();
    	String[] campos = new String[] {"numero"};
    	Cursor c = db.query("Recientes", campos, null, null, null, null, "nombre ASC");
    	ArrayList<String> numDB = new ArrayList<String>();
    	if (c.moveToFirst()) {
   	     	do {
   	     		numDB.add( c.getString(0));//Guardamos todos los recientes que estan almacenados en la BD
   	     	} while(c.moveToNext());
    	}
    	try{
	    	for(int i=0; i<dest.size(); i++){
	    		if(numDB.contains(dest.get(i).getNumero())) continue;//Si el destinatario i (el actual) ya esta en recientes, no lo agregamos
	    		ContentValues nuevoRegistro = new ContentValues();
	    		nuevoRegistro.put("numero", dest.get(i).getNumero());
	    		nuevoRegistro.put("nombre", dest.get(i).getNombre());
	    		db.insert("Recientes", null, nuevoRegistro);
	    	}
    	}catch(Exception e){
    		Log.i("Excepcion DB", e.getMessage());
    	}
    	finally{
    		db.close();
    	}
		
	}
    
    private ArrayList<String> sacarData(){
    	ArrayList<String> data = new ArrayList<String>();
    	String dat[];
    	Bundle bundle=getIntent().getExtras();
    	if(bundle==null) return null;
        ArrayList<String> dest = bundle.getStringArrayList("noEnviados");
        for(int i=0; i<dest.size(); i++){
        	dat = dest.get(i).split("-");
        	if(dat[1].equals("MSJ")){
        		mensaje = dat[0];
        		continue;
        	}
        	if(dat[1].equals("DE")){
        		de = dat[0];
        		continue;
        	}
        	if(dat[0].equals("")) data.add(dat[1]);
        	else data.add(dat[0]+"\n"+dat[1]);
    	}
        return data;
    }
    
    public void inicializar(){
       	txtPara.setHint("Número destinatario");
       	txtMensaje.setHint("Mensaje");
       	txtDe.setHint("Tu Nombre");
       	lblCaracteres.setText("0/"+maxCaracteres);
       	lblNumDestinatarios.setText("Destinatarios:"+destinatarios.size()+"/"+maxDestinatarios);
       	btnAgregarDest.setEnabled(false);
       	btnListDestinatarios.setEnabled(false);
       }
      
    public String sacarNombre(String n){
       	String nombre[] = n.split(" ");
       	if(nombre[0].length()>2) return nombre[0];
       	else return nombre[1];
    }
       
      public boolean estaAgregado(String num){
    	  for(int i=0; i<destinatarios.size(); i++){
    		  if(destinatarios.get(i).getNumero().toString().equals(num))
    			  return true;
    	  }
    	  return false;
      }
      
    
      public boolean networkAvailable() {
    		Context context = getApplicationContext();
    		ConnectivityManager connectMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    		if (connectMgr != null) {
    			NetworkInfo[] netInfo = connectMgr.getAllNetworkInfo();
    			if (netInfo != null) {
    				for (NetworkInfo net : netInfo) {
    					if (net.getState() == NetworkInfo.State.CONNECTED) {
    						return true;
    					}
    				}
    			}
    		} 
    		return false;
    	}
       
    
      private Bundle empaquetarData(){
       	Bundle b = new Bundle();
       	int i,cant = destinatarios.size();
       	ArrayList<String> dest;
       	b.putInt("numDestinatarios", cant);
       	for(i=0; i<cant; i++){
       		dest = new ArrayList<String>();
       		dest.add(destinatarios.get(i).getNombre());
       		dest.add(destinatarios.get(i).getNumero());
       		dest.add(destinatarios.get(i).enviarmsj()+"");
       		b.putStringArrayList(i+"", dest);
       	}
       	return b;
       }
       
   
      public void msj(int resId,String s){//Muestra Toast personalizado, con el String s y el icono resId
    	   Toast t = new Toast(this);
           LayoutInflater inflater = getLayoutInflater();
           View layout = inflater.inflate(R.layout.custom_toast,(ViewGroup) findViewById(R.id.lytoast));
    
           TextView txt = (TextView)layout.findViewById(R.id.txtToast);
           txt.setText(s);
           ImageView img = (ImageView)layout.findViewById(R.id.imgToast);
           img.setImageResource(resId);
    
           t.setDuration(Toast.LENGTH_SHORT);
           t.setView(layout);
           t.show();
   		}
       
      
       public boolean validacion(){
    	   if(txtMensaje.getText().toString().trim().length()==0){
    		   Toast.makeText(this, "Escriba el mensaje", Toast.LENGTH_SHORT).show();
    		   return false;
    	   }
    	   if(txtDe.getText().toString().trim().length()==0){
    		   Toast.makeText(this, "Escriba quién manda el mensaje", Toast.LENGTH_SHORT).show();
    		   return false;
    	   }
    	   if(txtPara.getText().toString().trim().length()==0 && destinatarios.size()==0){
    		   Toast.makeText(this, "Escriba por lo menos un destinatario", Toast.LENGTH_SHORT).show();
    		   return false;
    	   }
    	   if(txtPara.getText().toString().trim().length()!=0){
    		   if(txtPara.getText().length()!=8){
    			   Toast.makeText(this, "El número debe tener 8 dígitos", Toast.LENGTH_SHORT).show();
    			   return false;
    		   }
    		   if(txtPara.getText().charAt(0)!='7'){
    			   Toast.makeText(this, "El número debe empezar con 7", Toast.LENGTH_SHORT).show();
    			   return false;
    		   }
    	   }
    	   
    	   return true;
       }
      
       public int identificarCompania(String number){	    	
    	   	int n;
			String num = number.substring(0,4);
			n = Integer.parseInt(num);
			
			if(((n>=7000)&&(n<=7099))||		     
			     ((n>=7600)&&(n<=7669))||
			     ((n>=7687)&&(n<=7690))||
			     ((n>=7740)&&(n<=7759))||
			     ((n>=7805)&&(n<=7809))||
			     ((n>=7840)&&(n<=7844))||
			     ((n>=7850)&&(n<=7869))||
			     ((n>=7950)&&(n<=7969))||
			     ((n>=7985)&&(n<=7989))){
					return CLARO;		
			}
								
			if(((n>=7300)&&(n<=7399))||		    			   
				((n>=7400)&&(n<=7449))||			   						   
				((n>=7460)&&(n<=7469))||
				((n>=7695)&&(n<=7698))||
				((n>=7760)&&(n<=7779))||
				((n>=7970)&&(n<=7979))){
				 return DIGICEL;			 
			}
		
			if(((n>=7100)&&(n<=7199))||
				  ((n>=7450)&&(n<=7459))||
				  ((n>=7691)&&(n<=7694))||
			      ((n>=7700)&&(n<=7719))||
			      ((n>=7780)&&(n<=7784))||
			      ((n>=7790)&&(n<=7794))||
			      ((n>=7810)&&(n<=7839))||
			      ((n>=7845)&&(n<=7849))||
			      ((n>=7990)&&(n<=7999))){
				return MOVISTAR;
			}
			
			if(((n>=7200)&&(n<=7299))||
			     ((n>=7470)&&(n<=7499))||
			     ((n>=7500)&&(n<=7599))||			     
			     ((n>=7670)&&(n<=7679))||
			     ((n>=7680)&&(n<=7683))||
			     ((n>=7720)&&(n<=7739))||
			     ((n>=7785)&&(n<=7789))||
			     ((n>=7795)&&(n<=7799))||
			     ((n>=7870)&&(n<=7899))||
			     ((n>=7900)&&(n<=7949))){
					return TIGO;

				}
			return -1;		    	
   }

       @Override
	   	protected Dialog onCreateDialog(int id) {
	   	 Dialog dialog = null;;
	   	    switch(id) {
		    	    case 0:
			    	     dialog = new Dialog(MundoMensajero_Activity.this);
			    	     dialog.setTitle("Acerca de Mundo Mensajero");
			    	     dialog.setContentView(R.layout.acercade);
			    	     lblHkadejo = (TextView)dialog.findViewById(R.id.lblhkadejo);
			    	     lblFabricio = (TextView)dialog.findViewById(R.id.lblFabricio);
			    	     imgDonar = (ImageView)dialog.findViewById(R.id.imgDonar);
			    	     lblComentarios = (TextView)dialog.findViewById(R.id.lblComentarios);
			    	     btnCerrarAcercaDe = (Button)dialog.findViewById(R.id.btnCerrarAcercaDe);
			    	     lblHkadejo.setOnClickListener(onClickHkadejo);
			    	     lblFabricio.setOnClickListener(onClickFabricio);
			    	     btnCerrarAcercaDe.setOnClickListener(onClickCerrarAcercaDe);
			    	     imgDonar.setOnClickListener(onClickDonar);
			    	     lblComentarios.setOnClickListener(onClickComentarios);
		    	     break;
		    	    case 1:
		    	    	 dialog = new Dialog(MundoMensajero_Activity.this);
			    	     dialog.setTitle("Lo nuevo");
			    	     dialog.setContentView(R.layout.lonuevo);
			    	     chkNoMostrar = (CheckBox)dialog.findViewById(R.id.checkBoxNoMostrar);
			    	     lblFabricio = (TextView)dialog.findViewById(R.id.lblGooglePlay);
			    	     Button btnCerrarLoNuevo = (Button)dialog.findViewById(R.id.btnCerrarLoNuevo);
			    	     lblComentarios = (TextView)dialog.findViewById(R.id.lblComentarios2);
			    	     lblFabricio.setOnClickListener(onClickGooglePlay);
			    	     lblComentarios.setOnClickListener(onClickComentarios);
			    	     btnCerrarLoNuevo.setOnClickListener(onClickCerrarLoNuevo);
			    	     
		    	    break;
	   	    }
	   	    return dialog;
	   	}
       private OnClickListener onClickCerrarLoNuevo = new OnClickListener() {
           public void onClick(View v) {
        	   SharedPreferences.Editor editor = prefs.edit();
        	   if(chkNoMostrar.isChecked())        				
        		   editor.putString("MOSTRAR_MSJ_INICIAL", "F");
        	   else
        		   editor.putString("MOSTRAR_MSJ_INICIAL", "V");
        	   editor.commit();
        	   dismissDialog(1);
           }
       };
       private OnClickListener onClickGooglePlay = new OnClickListener() {
           public void onClick(View v) {
        	   Intent in=new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=mundomensajero.main&feature=search_result#?t=W251bGwsMSwxLDEsIm11bmRvbWVuc2FqZXJvLm1haW4iXQ.."));
        	   startActivity(in);
        	   dismissDialog(1);
           }
       };
       private OnClickListener onClickCerrarAcercaDe = new OnClickListener() {
           public void onClick(View v) {
        	   dismissDialog(0);
           }
       };
       
       private OnClickListener onClickComentarios = new OnClickListener() {
           public void onClick(View v) {
        	   Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        	   emailIntent.setType("plain/text");
        	   String aEmailList[] = {"esfabrizzio@gmail.com"};
        	   emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList); 
        	   emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Comentario sobre «Mundo Mensajero SV»");
        	   MundoMensajero_Activity.this.startActivity(Intent.createChooser(emailIntent, "Enviar usando"));  
           }
       };
       
       private OnClickListener onClickDonar = new OnClickListener() {
           public void onClick(View v) {
        	   Intent in=new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QU8L27QUQF4BC"));
        	   startActivity(in);
           }
       };
       private OnClickListener onClickHkadejo = new OnClickListener() {
           public void onClick(View v) {
        	   Intent in=new Intent(Intent.ACTION_VIEW, Uri.parse("http://hkadejo.com/"));
           		startActivity(in);
           }
       };
       private OnClickListener onClickFabricio = new OnClickListener() {
           public void onClick(View v) {
        	   Intent in=new Intent(Intent.ACTION_VIEW, Uri.parse("https://plus.google.com/u/0/117985040770238360937/about"));
           		startActivity(in);
           }
       };
       
       /**===================================================================================**/
       /**						FUNCIONES PARA ENVIO DE MSJ									**/
       /**===================================================================================**/

       String enviarMensajeMovistar(String num,String msg,String de){
   	   	String cad1[],cad2[] = null;
   	   	BufferedReader in = null;   
   	   	msg = msg.replace("ñ", "n");
	   	msg = msg.replace("á", "a");
	   	msg = msg.replace("é", "e");
	   	msg = msg.replace("í", "i");
	   	msg = msg.replace("ó", "o");
	   	msg = msg.replace("ú", "u");
  	    	try {
  	    		HttpClient client = new DefaultHttpClient();
  	    		HttpPost request = new HttpPost("http://www.nubemensajera.com/send");
  	    		List<NameValuePair> postParameters = new ArrayList<NameValuePair>();
	            postParameters.add(new BasicNameValuePair("from", de));
	            postParameters.add(new BasicNameValuePair("to", num));
	            postParameters.add(new BasicNameValuePair("message", msg));
	            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters);
	            request.setEntity(formEntity);
	            HttpResponse response = client.execute(request);
	            
	            in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
	            StringBuffer sb = new StringBuffer("");
	            String line = "";
	            String NL = System.getProperty("line.separator");
	            
	            while ((line = in.readLine()) != null) {
	                sb.append(line + NL);
	            }
	            in.close();
	            String result = sb.toString();
	            cad1 = result.split(",");
	            cad2 = cad1[0].split(":");
  	    	}catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}catch (ClientProtocolException e) {
				e.printStackTrace();
			}catch (IOException e) {
				e.printStackTrace();
			}finally {
	            if (in != null){
	                try {
	                    in.close();
	                    }catch (IOException e) {e.printStackTrace();}
	            }
			}
  	    	return cad2[1];//retornamos el ID
   	   
      }
              
       String enviarMensaje(String num,String msg){
    	   	String cad1[],cad2[] = null;
    	   	BufferedReader in = null;   
    	   	msg = msg.replace("ñ", "n");
    	   	msg = msg.replace("á", "a");
    	   	msg = msg.replace("é", "e");
    	   	msg = msg.replace("í", "i");
    	   	msg = msg.replace("ó", "o");
    	   	msg = msg.replace("ú", "u");
   	    	try {
   	    		HttpClient client = new DefaultHttpClient();
   	    		HttpPost request = new HttpPost("http://www.nubemensajera.com/send");
   	    		List<NameValuePair> postParameters = new ArrayList<NameValuePair>();
	            postParameters.add(new BasicNameValuePair("from", de));
	            postParameters.add(new BasicNameValuePair("to", num));
	            postParameters.add(new BasicNameValuePair("message", msg));
	            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters);
	            request.setEntity(formEntity);
	            HttpResponse response = client.execute(request);
	            
	            in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
	            StringBuffer sb = new StringBuffer("");
	            String line = "";
	            String NL = System.getProperty("line.separator");
	            
	            while ((line = in.readLine()) != null) {
	                sb.append(line + NL);
	            }
	            in.close();
	            String result = sb.toString();
	                        
	            cad1 = result.split(",");
	            cad2 = cad1[0].split(":");
   	    	}catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}catch (ClientProtocolException e) {
				e.printStackTrace();
			}catch (IOException e) {
				e.printStackTrace();
			}finally {
	            if (in != null){
	                try {
	                    in.close();
	                    }catch (IOException e) {e.printStackTrace();}
	            }
			}
   	    	return cad2[1];//retornamos el ID
    	   
       }
       
       String consultarEnvio(String id){
    	   BufferedReader in = null;  
    	   String cad1[],cad2[] = null;
    	   try {
  	    		HttpClient client = new DefaultHttpClient();	            
	            HttpGet request = new HttpGet("http://www.nubemensajera.com/status/"+id);
	            HttpResponse response = client.execute(request);
	            
	            in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
	            StringBuffer sb = new StringBuffer("");
	            String line = "";
	            String NL = System.getProperty("line.separator");
	            
	            while ((line = in.readLine()) != null) {
	                sb.append(line + NL);
	            }
	            in.close();
	            String result = sb.toString();
	            
	            if(result.length()>50) return "";
	            
	            cad1 = result.split(",");
	            cad2 = cad1[1].split(":");
	            cad2[1] = cad2[1].substring(1,cad2[1].length()-3);
	            
  	    	}catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}catch (ClientProtocolException e) {
				e.printStackTrace();
			}catch (IOException e) {
				e.printStackTrace();
			}finally {
	            if (in != null){
	                try {
	                    in.close();
	                    }catch (IOException e) {e.printStackTrace();}
	            }
			}
  	    	return cad2[1];
    	   
       }

       void lanzarNotificacion(boolean exito){
			String ns = Context.NOTIFICATION_SERVICE;
			NotificationManager notManager = (NotificationManager) getSystemService(ns);
			
			//Configuramos la notificacion
			int icono;
			if(exito) icono = R.drawable.exito_envio;
			else icono = R.drawable.error_envio;
			CharSequence textoEstado = "Mundo Mensajero";
			long hora = System.currentTimeMillis();

			Notification notif = new Notification(icono, textoEstado, hora);
			
			//Configuramos el Intent
			Context contexto = MundoMensajero_Activity.this;
			CharSequence titulo = "Mundo Mensajero";
			CharSequence descripcion;

			if(exito)
				if((cantClaro+cantDigicel+cantMovistar+cantTigo)>1)
					descripcion = "Se enviaron exitosamente los mensajes";
				else
					descripcion = "Se envió exitosamente el mensaje";
			else
				if((cantClaro+cantDigicel+cantMovistar+cantTigo)>1)
					descripcion = "No se enviaron algunos mensajes";
				else
					descripcion = "No se pudo enviar el mensaje";

			Intent notIntent;
			if(exito) notIntent= new Intent(contexto,MundoMensajero_Activity.class);
			else notIntent= new Intent(contexto,NoEnviadosView.class);
			Bundle b = new Bundle();
			noEnviados.add(de+"-DE");
			noEnviados.add(mensaje+"-MSJ");
	    	b.putStringArrayList("noEnviados", noEnviados);
	    	notIntent.putExtras(b);
	    	
	    	PendingIntent contIntent = PendingIntent.getActivity(contexto, 0, notIntent, 0);

	    	notif.setLatestEventInfo(contexto, titulo, descripcion, contIntent);
	    	
			notif.flags |= Notification.FLAG_AUTO_CANCEL;
			notif.defaults |= Notification.DEFAULT_VIBRATE;
			
			notManager.notify(1, notif);
			
  		}
       
}



